package cn.melonlib.security.encryption.anno;

import cn.melonlib.security.encryption.enums.EncTarget;

import java.lang.annotation.*;

/**
 * 数据加密，如果是参数，则加密参数，如果是方法，则加密返回值
 * 数据只加密字符串
 * 加密注解不能与解密注解同时使用
 */
@Documented
@Target({ElementType.METHOD,ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface Encrypt{

    /**
     * 如果是一个对象，则需要确定对应的属性，属性以getter setter方法来确定，如果此处为空则加密当前数据对象
     * @return
     */
    String [] paths() default {};

    /**
     * 加密目的
     * @return
     */
    EncTarget target() default EncTarget.TRANS;
}
